/*
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at
 **
 **     http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ** See the License for the specific language governing permissions and
 ** limitations under the License.
 */

package org.geohunter.activity.cachelist;

import org.geohunter.R;
import org.geohunter.menuactions.MenuAction;
import org.geohunter.database.CachesProviderToggler;

import android.content.res.Resources;

public class MenuActionToggleFilter implements MenuAction {
    private final CachesProviderToggler mCachesProviderToggler;
    private final Resources mResources;
    private final CacheListUpdater mCacheListPositionUpdater;

    public MenuActionToggleFilter(CachesProviderToggler cachesProviderToggler,
            Resources resources,
            CacheListUpdater cacheListPositionUpdater) {
        mCachesProviderToggler = cachesProviderToggler;
        mResources = resources;
        mCacheListPositionUpdater = cacheListPositionUpdater;
    }

    public void act() {
        mCachesProviderToggler.toggle();
        mCacheListPositionUpdater.onDataViewChanged();
    }

    @Override
    public String getLabel() {
        if (mCachesProviderToggler.isShowingNearest())
            return mResources.getString(R.string.menu_show_all_caches);
        else
            return mResources.getString(R.string.menu_show_nearest_caches);
    }

    @Override
    public boolean isEnabled() {
        return true;
    }
}
